//package com.gxar.navigation.server.base.config;
//
//import com.gxar.navigation.server.base.common.properties.RedisProperties;
//import lombok.RequiredArgsConstructor;
//import org.apache.commons.lang3.StringUtils;
//import org.redisson.Redisson;
//import org.redisson.api.RedissonClient;
//import org.redisson.client.codec.StringCodec;
//import org.redisson.config.Config;
//import org.redisson.config.SingleServerConfig;
//import org.redisson.config.TransportMode;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import redis.clients.jedis.JedisPool;
//import redis.clients.jedis.JedisPoolConfig;
//
///**
// * Redis configuration.
// *
// * @author linsy
// */
//@Configuration
//@RequiredArgsConstructor
//public class RedisConfig {
//
//    private final RedisProperties redisProperties;
//
//    /**
//     * @return
//     */
//    @Bean
//    public JedisPool jedisPool() {
//        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//        jedisPoolConfig.setMaxIdle(redisProperties.getJedisProperties().getMaxIdle());
//        jedisPoolConfig.setMinIdle(redisProperties.getJedisProperties().getMinIdle());
//        jedisPoolConfig.setMaxTotal(redisProperties.getJedisProperties().getMaxActive());
//        if (StringUtils.isNotBlank(redisProperties.getPassword())) {
//            return new JedisPool(jedisPoolConfig, redisProperties.getHost(), redisProperties.getPort(),
//                    redisProperties.getTimeout(), redisProperties.getUsername(), redisProperties.getPassword(), redisProperties.getDatabase());
//        }
//        return new JedisPool(jedisPoolConfig, redisProperties.getHost(), redisProperties.getPort(),
//                redisProperties.getTimeout());
//    }
//
//    public void shutDownJedisPool() {
//
//    }
//
//    @Bean
//    public RedissonClient singleRedisson() {
//        // 创建配置
//        Config config = new Config();
////        config.setCodec(StringCodec.INSTANCE);
////        config.setTransportMode(TransportMode.NIO);
//        config.useSingleServer()
//                .setAddress("redis://" + redisProperties.getHost() + ":" + redisProperties.getPort()).setUsername(redisProperties.getUsername())
//                .setDatabase(redisProperties.getDatabase());
//
//        return Redisson.create(config);
//    }
//
//}